package com.hb.trade.server.center.au.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hb.core.pojo.center.au.dto.OrgDTO;
import com.hb.core.pojo.center.au.dto.UserDTO;
import com.hb.core.pojo.center.au.entity.Org;
import com.hb.core.pojo.enums.RoleTypeEnum;
import com.hb.core.pojo.parent.PageResult;

import java.util.List;

/**
 * 组织架构信息表 服务类
 *
 * @author zhaojk
 * @since 2021-11-29
 */
public interface OrgService extends IService<Org> {

    /**
     * 判断企业是否存在
     * 只取参数中的orgName和creditCode进行判断
     *
     * @param org
     * @return 数据库中的企业对象
     */
    Org exists(Org org);

    /**
     * @param orgId:
     * @Description: 查询当前企业所有的父企业(不包含当前企业)
     * @Author: zhongdl
     * @Date:2022/1/20 9:03
     * @return: {@link List< Org> }
     * @deprecated 方法局限性太大
     **/
    @Deprecated
    List<Org> listParent(Long orgId);


    /**
     * @param orgId:
     * @Description: 查询当前企业所有的子企业(包含当前企业)
     * @Author: zhongdl
     * @Date:2022/1/20 9:03
     * @return: {@link List< Org> }
     * @deprecated 方法局限性太大
     **/
    @Deprecated
    List<Org> listSon(Long orgId);

    /**
     * 分页获取企业信息
     *
     * @param orgDTO
     * @return
     */
    Page<Org> pageTenderOrg(OrgDTO orgDTO);

    /**
     * 获取指定企业下的, 指定角色类型的用户
     *
     * @param orgId
     * @param roleType
     * @return
     */
    List<UserDTO> getUser(Long orgId, RoleTypeEnum roleType);

    /**
     * 查询总公司
     * @param orgId
     * @return
     */
    OrgDTO getHeadOffice(Long orgId);


    boolean orgConfirm(OrgDTO orgDTO);
}
